package com.wantup.springboot.boot.contorller;

import com.wantup.springboot.boot.beans.TxPerson;
import com.wantup.springboot.boot.service.TxPersonService;
import com.wantup.springboot.boot.task.AsyncTask;
import com.wantup.springboot.boot.util.JsonData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.List;

//@RestController
@Controller
public class TxPersonContorller {

    @Autowired
    private TxPersonService txPersonService;

    @Autowired
    private AsyncTask asyncTask;



    @PostMapping("/getAllEmp")
    public List<TxPerson> getAllEmp() {
        System.out.println(" === getAllEmp === ");
        List<TxPerson> txPersonList = this.txPersonService.getAllEmp();

        return txPersonList;
    }

    @PostMapping("/addEmp")
    public JsonData addEmp(@RequestBody TxPerson txPerson) throws Exception {
        JsonData jsonData = null;
        try {
            System.out.println(" " + txPerson.toString());
            jsonData = this.txPersonService.addTxPerson(txPerson);
        } catch (Exception e) {
            e.printStackTrace();
            jsonData = new JsonData(-1, "服务器开小差了！！！");
        }
        return jsonData;
    }

    @PostMapping("/updateEmp")
    public JsonData updateEmp(@RequestBody TxPerson txPerson) {
        JsonData jsonData = null;
        try {
            jsonData = this.txPersonService.updateTxPerson(txPerson);
        } catch (Exception e) {
            e.printStackTrace();
            jsonData = new JsonData(-1, "服务器开小差了！！！！");
        }
        return jsonData;
    }


    @PostMapping("/deleteEmp/{id}")
    public JsonData deleteEmp(@PathVariable("id") Integer pid) {
        JsonData jsonData = null;
        try {
            jsonData = this.txPersonService.deleteTxPerson(pid);
        } catch (Exception e) {
            jsonData = new JsonData(-1, "服务器开小差了 ");
        }

        return jsonData;
    }

    @PostMapping("/start")
    public JsonData startAsync()throws Exception{
        System.out.println("进入 定时任务 方法");
        System.out.println("startAsync任务中的 线程名 "+Thread.currentThread().getName());
        JsonData jsonData = null;
        try {
            asyncTask.task1();
            jsonData = new JsonData(0,"定时器开启成功");
        }catch (Exception e){
            e.printStackTrace();
            jsonData = new JsonData(-1,"定时器开启失败");
        }

        return jsonData;
    }

    @PostMapping("/getCount")
    public JsonData getCountItemFromTxPerson()throws Exception{
        JsonData jsonData = null;
        try {
            jsonData = this.txPersonService.getCountTxPersonItem();
        }catch (Exception e){
            e.printStackTrace();
            jsonData = new JsonData(-1,"服务器炸了");
        }

        return jsonData;
    }





}
